home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 2 / Tech Arsenal 2 (Arsenal Computer).iso / casm / ctc0008.txt < prev    next >
Text File  |  1994-03-29  |  53KB  |  781 lines

  1.                        C Set ++ Compiler Version 2.0
  2.                                 Fixes List
  3.                        -----------------------------
  4. *************************************************************************
  5. *                                                                       *
  6. *  This CSD contains fixes that are common to C/C++ Tools Version 2.0   *
  7. *  and Version 2.01.  Notwithstanding the version statements            *
  8. *  contained in the files of this CSD, this is not an upgrade of        *
  9. *  Version 2.0 to Version 2.01.                                         *
  10. *                                                                       *
  11. *  The code to which you have access is determined by the version of    *
  12. *  the software to which you are licensed.                              *
  13. *                                                                       *
  14. *************************************************************************
  15. =========================================================================
  16.                CTC0008 is informal Corrective Service
  17. The following fixes are provided in Compiler CS CTC0008
  18. *************************************************************************
  19. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  20. -------------------------------------------------------------------------
  21. PJ12307          BE         Cannot access local variables of callback
  22.                             functions within the Debugger.
  23. -------------------------------------------------------------------------
  24.  PJ12325         BE         Incorrect code may be generated for a
  25.                             conditional increment or decrement if the
  26.                             comparison is signed.
  27. -------------------------------------------------------------------------
  28.  PJ12340         BE         The conversion of an address to a segmented
  29.                             address may be incorrectly done if the
  30.                             address involves an index calculation
  31.                             (ie: &array{i-1})
  32. -------------------------------------------------------------------------
  33.  PJ12341         BE         A register used by strncat() could be
  34.                             clobbered under rare circumstances and
  35.                             cause incorrect behaviour.
  36. -------------------------------------------------------------------------
  37.  PJ12376         BE         Fixed an internal problem with the handling
  38.                             of conditional increments with side effects.
  39. -------------------------------------------------------------------------
  40.  PJ12431         BE         Incorrect register selection could cause
  41.                             incorrect results when performing a bitwise
  42.                             AND (&) with a constant.
  43. -------------------------------------------------------------------------
  44.  PJ12507       BE & CRT     Compiling 16 to 32 callback functions with
  45.                             /Gh+ causes a run-time trap.
  46. -------------------------------------------------------------------------
  47.  QUAL-IMP        BE         Incorrect register selection could lead to
  48.                             traps or unexpected results with 32 to 16 to
  49.                             16 to 32 code.
  50. -------------------------------------------------------------------------
  51.  QUAL-IMP        BE         Fixed a problem similarto PJ11975 for
  52.                             conditional decrements.
  53. -------------------------------------------------------------------------
  54.  PJ12567         CRT        Exception handler was not deregistered within
  55.                             heap_check when using /TM+
  56. -------------------------------------------------------------------------
  57.  PJ12326         CFE        If listing is enabled (/Ls, /Li, or /Lj) and
  58.                             the source code contains nested #if, #elif
  59.                             and #ifdef, the compiler might fail with
  60.                             unexpected compiler error.
  61. -------------------------------------------------------------------------
  62.  PJ12327     CFE & C++FE    After compiling programs with preload turned
  63.                             on, sometimes the front-end traps after the
  64.                             compilation is completed.
  65. -------------------------------------------------------------------------
  66.  PJ12477         CFE        The compiler was not checking against
  67.                             possible errors reading the source and
  68.                             header files.
  69. -------------------------------------------------------------------------
  70.  PJ12490         CFE        ICC will be changed to ignore /Si+ option
  71.                             when /Fb+ option is specified.
  72. -------------------------------------------------------------------------
  73.  QUAL-IMP        CFE        Pre-load program was not checking the return
  74.                             codes from some API calls.
  75. -------------------------------------------------------------------------
  76.  QUAL-IMP        CFE        If the compiler is first invoked from a
  77.                             directory with preload option enabled, while
  78.                             the compiler stays loaded, the user is
  79.                             prevented from removing the directory.
  80.                             This is inconvenient for the user.
  81. -------------------------------------------------------------------------
  82.  QUAL-IMP        CFE        Compiling program with function calls with
  83.                             very large number of arguments causes
  84.                             compiler to trap.
  85. -------------------------------------------------------------------------
  86.  PJ12378         C++FE      If a class is _Exported, then a member
  87.                             function is subsequently defined to be
  88.                             "inline", the compiler still tells the linker
  89.                             to export the function.  This causes an
  90.                             "undefined external" linker error.
  91. -------------------------------------------------------------------------
  92.  PJ12388         C++FE      A C++ program compiled with optimization
  93.                             will cause the front-end to trap if a "const
  94.                             int" static class data member is referenced
  95.                             with explicit class qualification.
  96. -------------------------------------------------------------------------
  97.  PJ12427         C++FE      Erroneous conversion error between typedefs,
  98.                             friend functions and the use of the friend
  99.                             function.
  100. -------------------------------------------------------------------------
  101.  PJ12445         C++FE      Compiler trap processing declaration of const
  102.                             var symbol previously used without being
  103.                             declared.
  104. -------------------------------------------------------------------------
  105.  PJ12479         C++FE      Preprocessor trap when processing a macro
  106.                             defined to NULL
  107. -------------------------------------------------------------------------
  108.  PJ12492         C++FE      When one anonymous union is nested inside
  109.                             another in a C++ program, incorrect addresses
  110.                             are generated for the union members.
  111. -------------------------------------------------------------------------
  112.  QUAL-IMP        C++FE      Fixed #pragma page() and #pragma skip() so
  113.                             that a listing file will not be generated if
  114.                             the listing option is not activated on the
  115.                             command line.
  116. -------------------------------------------------------------------------
  117.  QUAL-IMP        C++FE      If the argument list of a macro is supplied
  118.                             via another macro, the macro might not be
  119.                             expanded as expected.
  120.                             Note: Corresponding CFE fix was implemented
  121.                                   in CTC0006 as PJ11929
  122. -------------------------------------------------------------------------
  123.  QUAL-IMP        C++FE      Wrapper <demangle.h> with #pragma pack
  124. -------------------------------------------------------------------------
  125.  PJ12328         UTIL       When a new C Set++ project (ie. no compiler
  126.                             options have been set), is invoked under the
  127.                             build action on the WorkFrame, the compiler
  128.                             DLL will return the default action.  The
  129.                             default action is not to generate any .W
  130.                             files.
  131. -------------------------------------------------------------------------
  132.  PJ12522         UTIL       Munch was giving the error "assert
  133.                             <line_number> invalid object record." This
  134.                             error was incorrectly being produced for
  135.                             valid object record formats.
  136. =========================================================================
  137.                CTC0007 is informal Corrective Service
  138. The following fixes are provided in Compiler CS CTC0007 and later CS
  139. *************************************************************************
  140. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  141. -------------------------------------------------------------------------
  142.  PJ11951       BE & CFE     The optimizer misses a chance to inline
  143.                             certain C++ functions.
  144. -------------------------------------------------------------------------
  145.  PJ11979         CFE        In source code:
  146.                             int main (void) {
  147.                                 int a, b; b = 1; a = 2; return 0;
  148.                             }
  149.                             The symbols for a and b are generated in a
  150.                             different order depending on whether /Ti is
  151.                             on.  They should be generated in the same
  152.                             way no matter what the /Ti setting is.
  153. -------------------------------------------------------------------------
  154.  QUAL-IMP        CFE        When /La compiler option is used, some of the
  155.                             structures and unions are incorrectly shown
  156.                             in the listing
  157. -------------------------------------------------------------------------
  158.  PJ12108         CRT        Library fixes made to solve problems when
  159.                             debug allocated objects were freed with
  160.                             non-debug routines and vice-versa.
  161.                             In addition the environment variable
  162.                             DDE4_HEAP_SKIP was added whereby the user can
  163.                             skip the _heap_check that occur when debug
  164.                             routines are invoked. The syntax is as
  165.                             follows:
  166.  
  167.                             set DDE4_HEAP_SKIP=increment,starting
  168.  
  169.                             where: 'increment' is how often a
  170.                             heap_check will be invoked, and 'starting'
  171.                             (which is optional) is how many calls to
  172.                             debug memory routines must occur before
  173.                             heap_checks are done.
  174.  
  175.                             Example: DDE4_HEAP_SKIP=100,1000
  176.                             will perform a heap_check after 1000 debug
  177.                             memory routines have been called and on every
  178.                             100 calls after that.
  179.  
  180.                             Example: DDE4_HEAP_SKIP=50
  181.                             will perform a heap_check on every 50 calls
  182.                             made to a debug memory routine
  183.  
  184.                             Note: If DDE4_HEAP_SKIP is not set in the
  185.                             environment then the default will be to
  186.                             invoke heap_check on every call to a debug
  187.                             memory routine.
  188. =========================================================================
  189.                CTC0006 is informal Corrective Service
  190. The following fixes are provided in Compiler CS CTC0006 and later CS
  191. *************************************************************************
  192. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  193. -------------------------------------------------------------------------
  194.  PJ11896         BE         Optimization Problem: A for loop that
  195.                             functions like a memcpy() could be
  196.                             incorrectly optimized if the source of the
  197.                             copy is a struct member.
  198. -------------------------------------------------------------------------
  199.  PJ11952         BE         Optimization Problem: An internal problem
  200.                             with expression simplification could result
  201.                             in incorrect code generation.
  202. -------------------------------------------------------------------------
  203.  PJ11953         BE         Optimization Problem: Within an inner switch
  204.                             of nested switches, a goto jumping to a break
  205.                             for the outer switch could be turned into a
  206.                             break for the inner switch.
  207. -------------------------------------------------------------------------
  208.  PJ11975         BE         Optimization Problem: Statements of the form:
  209.                             "if (f1 < f2) i++", where f1 and f1 have
  210.                             floating-point datatypes, could cause a
  211.                             compile-time exception in the BE.
  212. -------------------------------------------------------------------------
  213.  QUAL-IMP        BE         Optimization Problem: MOD operations could
  214.                             generate results of the wrong sign if both
  215.                             operands are negative.  Similar results could
  216.                             occur for MOD and DIV by a negative power of
  217.                             2.
  218. -------------------------------------------------------------------------
  219.  QUAL-IMP        BE         Fixed a small problem with the generated
  220.                             assembler listing file - an incorrect symbol
  221.                             could be used.
  222. -------------------------------------------------------------------------
  223.  PJ11872         C++FE      Fixed a trap in the C++ frontend.  The trap
  224.                             occurred when we tried to compile a source
  225.                             file that contained a class that had 2
  226.                             declarations of the same friend function and
  227.                             a typedef for that function.
  228. -------------------------------------------------------------------------
  229.  PJ11887         C++FE      Fixed a trap when compiling code with a
  230.                             definition of a function with _Far16 _Pascal
  231.                             linkage.
  232. -------------------------------------------------------------------------
  233.  PJ11981         C++FE      If a conversion function yields a reference
  234.                             to a class with constructors, and a temporary
  235.                             is built from the result of that conversion,
  236.                             the temporary is initialized by bitwise
  237.                             copying instead of by calling its copy
  238.                             constructor.
  239. -------------------------------------------------------------------------
  240.  PJ11982         C++FE      The compiler will deliberately not inline
  241.                             some functions if doing so would break C++
  242.                             exception handling.  However, when exception
  243.                             handling is disabled by /Gx+, the compiler
  244.                             still fails to inline those functions.
  245. -------------------------------------------------------------------------
  246.  PJ11983         C++FE      A complex expression containing more than one
  247.                             conditional subexpression (i.e. the  x ? y :
  248.                             z construct) may be generated such that the
  249.                             subexpressions are evaluated in the wrong
  250.                             order.
  251. -------------------------------------------------------------------------
  252.  PJ11984         C++FE      An inline function consisting of a single
  253.                             return statement that returns a
  254.                             type-converted parameter may be incorrectly
  255.                             inlined.
  256. -------------------------------------------------------------------------
  257.  PJ11881         CFE        Sizeof typedef within sizeof sometimes
  258.                             returns arbitrary value.
  259. -------------------------------------------------------------------------
  260.  PJ11929         CFE        If the argument list of a macro is supplied
  261.                             via another macro, the macro might not be
  262.                             expanded as expected.
  263. -------------------------------------------------------------------------
  264.  PJ11889         CRT        If the function that executes when a thread
  265.                             begins execution calls 16-bit code, then
  266.                             EDCThunkProlog is called from within the
  267.                             function prolog.  EDCThunkProlog tries to
  268.                             access data that is outside the stack frame,
  269.                             and since this is the first frame on the
  270.                             stack, that storage is not allocated to the
  271.                             stack.  A protection exception occurs.
  272. =========================================================================
  273.                CTC0005 is informal Corrective Service
  274. The following fixes are provided in Compiler CS CTC0005 and later CS
  275. *************************************************************************
  276. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  277.  ------------------------------------------------------------------------
  278.  PJ11625         BE         Optimization Problem: Compiling source that
  279.                             contains floating-point code could cause a
  280.                             compile-time trap in the backend.
  281.  ------------------------------------------------------------------------
  282.  PJ11688         BE         Optimization Problem: Statements of the form
  283.                             "do { i++; } while (condition); i--;" could
  284.                             be incorrectly optimized.
  285.  ------------------------------------------------------------------------
  286.  PJ11692         BE         Incorrect debug info could be generated for a
  287.                             data member of a class with type "char *
  288.                             const".
  289.  ------------------------------------------------------------------------
  290.  PJ11695         BE         Optimization Problem: Instruction scheduling
  291.                             could clobber the result of constant multiply
  292.                             across a call.
  293.  ------------------------------------------------------------------------
  294.  PJ11696         BE         Optimization Problem: Using an int variable
  295.                             as an array of chars within a loop could
  296.                             result in incorrect code generation.
  297.  ------------------------------------------------------------------------
  298.  PJ11697         BE         Optimization Problem: Statements of the form
  299.                             "while (cond) { if (--i) { i++; break; } }"
  300.                             could be incorrectly optimized.
  301.  ------------------------------------------------------------------------
  302.  PJ11698         BE         Optimization Problem: If the "count" paramter
  303.                             of strncat() is a builtin string function,
  304.                             incorrect code could be generated.
  305.  ------------------------------------------------------------------------
  306.  PJ11699         BE         Optimization Problem: Tail calling a _Pascal
  307.                             function from another function could result
  308.                             in an exception at run-time.
  309.  ------------------------------------------------------------------------
  310.  PJ11701         BE         strncat() could copy one byte even if "count"
  311.                             parameter is a variable of value 0.
  312.  ------------------------------------------------------------------------
  313.  QUAL-IMP        BE         Optimization Problem: Adding two negative
  314.                             numbers and then negating the result could be
  315.                             optimized incorrectly.
  316.  ------------------------------------------------------------------------
  317.  QUAL-IMP        BE         Without optimization, an expression of the
  318.                             form "*((char*)&array[index]+i)" could
  319.                             generate an incorrect OBJ even though the
  320.                             ASM is correct.
  321.  ------------------------------------------------------------------------
  322.  PJ11491         C++FE      new() is not returning a valid pointer when
  323.                             allocating a 0-sized array.
  324.  ------------------------------------------------------------------------
  325.  PJ11492         C++FE      The delete() operator for an object was not
  326.                             being called with the debug parameters when
  327.                             that object was being deleted because its
  328.                             constructor threw an exception.
  329.  ------------------------------------------------------------------------
  330.  PJ11574         C++FE      Reduce the long link times and large swapper
  331.                             file created when linking C++ programs that
  332.                             contain templates.
  333.  ------------------------------------------------------------------------
  334.  PJ11575         C++FE      If a virtual base class appears more than
  335.                             once in the class hierarchy, then one copy of
  336.                             if may be initialized several times and the
  337.                             other copies not initialized.
  338.  ------------------------------------------------------------------------
  339.  PJ11584         C++FE      The compiler may crash when generating debug
  340.                             information for a class that has no
  341.                             user-supplied nor compiler-generated inline
  342.                             functions.  This is rare, since there are
  343.                             usually some compiler-generated ones.
  344.  ------------------------------------------------------------------------
  345.  PJ11585         C++FE      If a C++ compilation includes definitions of
  346.                             classes that contain virtual functions, all
  347.                             of which are inline functions, the compiler
  348.                             will generate those classes and functions
  349.                             whether or not they are actually used.  This
  350.                             fix generates them only when necessary
  351.  ------------------------------------------------------------------------
  352.  QUAL-IMP        C++FE      A C++ program containing a brace-enclosed
  353.                             statement block outside of a function body
  354.                             crashes the front-end when compiled with
  355.                             /Wuse+ if there is an unused label define
  356.                             in the block
  357.  ------------------------------------------------------------------------
  358.  QUAL-IMP        C++FE      A goto within a catch block is incorrectly
  359.                             diagnosed as a jump into the catch block,
  360.                             which is illegal since it bypasses
  361.                             initialization of the catch variable
  362.  ------------------------------------------------------------------------
  363.  QUAL-IMP        C++RT      Fixed memory leak that occurred when memory
  364.                             is allocated for an object however, it is not
  365.                             constructed because it's constructor threw an
  366.                             exception.
  367.  ------------------------------------------------------------------------
  368.  PJ11702         CFE        The compiler is not recognizing a constant
  369.                             expression properly when initialization
  370.                             involves an array within a structure within
  371.                             an array of structures
  372.  ------------------------------------------------------------------------
  373.  PJ11703         CFE        Using CSD 1 of C Set ++, the test case is
  374.                             expected to have a warning message, but the
  375.                             compiler should not be trapping.
  376.  ------------------------------------------------------------------------
  377.  PJ11686         CRT        The problem lies in reading across memory
  378.                             blocks.  The code did not take into account
  379.                             of the number of characters read in from the
  380.                             previous blocks and hence reading more than
  381.                             necessary.
  382.  ------------------------------------------------------------------------
  383.  PJ11687         CRT        AL register will now be set by the library
  384.                             when making a call to DosGetMessage.
  385. =========================================================================
  386.                CTC0004 is informal Corrective Service
  387. The following fixes are provided in Compiler CS CTC0004 and later CS
  388. *************************************************************************
  389. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  390.  ------------------------------------------------------------------------
  391.  PJ11127         BE         Optimization Problem: Multiplying a variable
  392.                             by a constant and the adding or subtracting 1
  393.                             could result in incorrect code generation.
  394.  ------------------------------------------------------------------------
  395.  PJ11128         BE         Optimization Problem: An internal problem
  396.                             could result in traps or unexpected results
  397.                             with 32 to 16 or 16 to 32 code.
  398.  ------------------------------------------------------------------------
  399.  PJ11129         BE         Optimization Problem: In rare circumstances,
  400.                             doing arithmetic with shorts could result in
  401.                             traps or unexpected results.
  402.  ------------------------------------------------------------------------
  403.  PJ11134         BE         Optimization Problem: The result of a right
  404.                             shift of a negative value, though
  405.                             implementation defined, could differ at /O-
  406.                             and /O+.
  407.  ------------------------------------------------------------------------
  408.  PJ11135         BE         Optimization Problem: The backend could abort
  409.                             with fatal error EDC4005 in intermediate file
  410.                             ROOPT when optimizing an if-then-else.
  411.  ------------------------------------------------------------------------
  412.  PJ11137         BE         Optimization Problem: Expressions of the
  413.                             form: "*(float *) &var", where var is an int,
  414.                             could cause a compile-time back-end trap.
  415.  ------------------------------------------------------------------------
  416.  PJ11138         BE         Optimization Problem: An internal problem
  417.                             occuring when compiling floating-point code
  418.                             could cause a compile-time back-end trap.
  419.  ------------------------------------------------------------------------
  420.  PJ11139         BE         Incorrect code could be generated when
  421.                             negating a char variable and then storing the
  422.                             result into an int variable.
  423.  ------------------------------------------------------------------------
  424.  PJ11140         BE         Optimization Problem: Statements of the form:
  425.                             "x--; if (cond) x += 2;" may be incorrectly
  426.                             optimized.
  427.  ------------------------------------------------------------------------
  428.  PJ11141         BE         Run-time traps could occur in code using 16
  429.                             to 32 callback functions if the code crossed
  430.                             a 64K boundary.
  431.  ------------------------------------------------------------------------
  432.  PJ11142         BE         When using strncat(), an extra NULL was being
  433.                             appended to the end of the destination string
  434.                             if the length of the source string was less
  435.                             than "n".
  436.  ------------------------------------------------------------------------
  437.  PJ11143         BE         Optimization Problem: Statements of the form:
  438.                             "if (!x) {y = 0;} else {y = 1;}" could cause
  439.                             a compile-time trap if x is a float-point
  440.                             type.
  441.  ------------------------------------------------------------------------
  442.  QUAL-IMP        BE         Under certain conditions, the optimizer could
  443.                             leave around some useless LEA instructions.
  444.                             This has now been fixed.
  445.  ------------------------------------------------------------------------
  446.  QUAL-IMP        BE         When exporting callback functions, an
  447.                             incorrect symbol could be used, resulting in
  448.                             link errors.
  449.  ------------------------------------------------------------------------
  450.  PJ11176         CFE        Compiler generates incorrect code for
  451.                             referencing array of array in structure
  452.                             with array index of 0.
  453.                             ie:  a.b[i][0].c = 1;  a.b[i]->c = 2;
  454.  ------------------------------------------------------------------------
  455.  PJ11177         CFE        If a variable is first declared and then
  456.                             initialized both with a typedef type and
  457.                             a qualifier, the compiler generates incorrect
  458.                             code.
  459.                             ie:  const typedef_name var;
  460.                                  const typedef_name var = 0;
  461.  ------------------------------------------------------------------------
  462.  PJ11179         CFE        When initializing a member of a structure
  463.                             casting the member to _Seg16 pointer causes
  464.                             unexpected compiler error.
  465.  ------------------------------------------------------------------------
  466.  PJ11180         CFE        When #pragma handler is specified for some
  467.                             functions, the compiler randomly generates
  468.                             incorrect code that exports some of those
  469.                             functions.
  470.  ------------------------------------------------------------------------
  471.  PJ11181         C++FE      The following message is produced when both
  472.                             sides of a conditional expression are the
  473.                             same:
  474.                             recoverable EDC4005: Error occured in
  475.                                         intermediate file RBEXPR(4902)
  476.  ------------------------------------------------------------------------
  477.  PJ11182         C++FE      An initialized function-scope static variable
  478.                             will cause the C++ front end to GPF if a
  479.                             compiler temporary is required when
  480.                             evaluating the initializing expression.
  481.  ------------------------------------------------------------------------
  482.  PJ11183         CRT        FILE struct members violate user name space.
  483.  ------------------------------------------------------------------------
  484.  PJ11185         CRT        MATHERR not handling domain errors.
  485. =========================================================================
  486.                CTC0003 is informal Corrective Service
  487. The following fixes are provided in Compiler CS CTC0003 and later CS
  488. *************************************************************************
  489. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  490.  ------------------------------------------------------------------------
  491.  PJ10704         BE         Incorrect debug information could cause IPMD
  492.                             to trap in DDE4BE32.DLL while debugging C++
  493.                             programs.
  494.  ------------------------------------------------------------------------
  495.  PJ10705         BE         Incorrect debug information for const member
  496.                             functions could cause expression evaluation
  497.                             problems in IPMD.
  498.  ------------------------------------------------------------------------
  499.  PJ10706         BE         Incorrect debug information could cause IPMD
  500.                             to hang when debugging large programs.
  501.  ------------------------------------------------------------------------
  502.  QUAL-IMP        BE         Incorrect debug information could confuse
  503.                             IPMD while debugging C++ programs.
  504.  ------------------------------------------------------------------------
  505.  PJ10461         CRT        Serialization code used in the runtime
  506.                             library may cause system traps. This
  507.                             usually occurs when one of the thread
  508.                             unexpectedly terminates.
  509.  ------------------------------------------------------------------------
  510.  PJ10703         C++RTL     CPPFILT utility truncates the mangled
  511.                             function names if it is greater than 233
  512.                             characters.
  513. =========================================================================
  514.                CTC0002 is formal Corrective Service
  515. The following fixes are provided in Compiler CS CTC0002 and later CS
  516. *************************************************************************
  517. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  518.  ------------------------------------------------------------------------
  519.  PJ10544          BE        Optimization Problem: Compiling with /G5 /Ms
  520.                             may optimize SUB ESP,4 into PUSH EAX at
  521.                             inappropriate places.
  522.  ------------------------------------------------------------------------
  523.  PJ10545          BE        Incorrect code may be generated when copying
  524.                             structures whose size is less than 12 bytes.
  525.  ------------------------------------------------------------------------
  526.  PJ10546          BE        Optimization Problem: An internal problem
  527.                             during common subexpression elimination could
  528.                             cause a compile-time exception.
  529.  ------------------------------------------------------------------------
  530.  PJ10547          BE        Optimization Problem: Incorrect code
  531.                             generation may result when optimizing a loop
  532.                             that contains a goto which acts like a break.
  533.  ------------------------------------------------------------------------
  534.  PJ10549          BE        Optimization Problem: Instruction scheduling
  535.                             may move instructions out of the protected
  536.                             area between _disable and _enable.
  537.  ------------------------------------------------------------------------
  538.  PJ10550          BE        Optimization Problem: Returning a floating
  539.                             point value as an integer may cause problems
  540.                             on machines without FP co-processors when
  541.                             compiled with /O and either /G4 or /G5.
  542.  ------------------------------------------------------------------------
  543.  PJ10552          BE        The enum data offset field of a COMDAT placed
  544.                             in a user segment was being set to a non-zero
  545.                             value.
  546.  ------------------------------------------------------------------------
  547.  PJ10553          BE        Optimization Problem: An internal problem
  548.                             could cause a compile-time trap when
  549.                             compiling with /O+ /Gf+.
  550.  ------------------------------------------------------------------------
  551.  PJ10556          BE        The BE was not growing the number of file
  552.                             handles available.  This caused a
  553.                             compile-time exception when the BE ran out of
  554.                             file handles.
  555.  ------------------------------------------------------------------------
  556.  PJ10557          BE        Optimization Problem: Calling a 32-bit
  557.                             function from the last statement of a _Far16
  558.                             _Pascal function could be compiled
  559.                             incorrectly.
  560.  ------------------------------------------------------------------------
  561.  PJ10558          BE        Optimization Problem: The incorrect register
  562.                             may be cleared when returning 0.
  563.  ------------------------------------------------------------------------
  564.  PJ10559          BE        A constant left-shifted by another constant
  565.                             may be folded incorrectly when compiled with
  566.                             /Gi.
  567.  ------------------------------------------------------------------------
  568.  PJ10560          BE        Optimization Problem: Tail call optimization
  569.                             was being incorrectly applied to a call to a
  570.                             pascal linkage function from a system linkage
  571.                             function.
  572.  ------------------------------------------------------------------------
  573.  QUAL-IMP         BE        Optimization Problem: Bad register selection
  574.                             around switch statements could cause
  575.                             incorrect code generation.
  576.  ------------------------------------------------------------------------
  577.  QUAL-IMP         BE        With C++, returning a complex structure from
  578.                             a function whose destructor has been inlined
  579.                             could be compiled incorrectly.
  580.  ------------------------------------------------------------------------
  581.  QUAL-IMP         BE        An internal problem could cause a
  582.                             compile-time trap when compiling, with /Gr
  583.                             /Rn, a _Far32 _Pascal function that returns a
  584.                             pointer.
  585.  ------------------------------------------------------------------------
  586.  PJ10478         CFE        The preprocessor was getting an internal
  587.                             compiler error for certain macro expansion.
  588.  ------------------------------------------------------------------------
  589.  PJ10477         CFE        If a source/header file contains null
  590.                             characters, the compiler gets an internal
  591.                             compiler error and may result in a huge
  592.                             swapper that may bring down your system.
  593.  ------------------------------------------------------------------------
  594.  QUAL-IMP        CFE        Error message was being erroneously issued
  595.                             when '_Export" keyword or '#pragma export'
  596.                             are specified more than once for the same
  597.                             object.
  598.  ------------------------------------------------------------------------
  599.  PJ10566       C++FE        Conversion function results in an
  600.                             unconstructed temporary. No constructor was
  601.                             called for the temporary object.
  602.  ------------------------------------------------------------------------
  603.  PJ10567       C++FE        When passing a class as a by value parameter
  604.                             a temporary is not used and the class is
  605.                             passed by reference.
  606.  ------------------------------------------------------------------------
  607.  PJ10568       C++FE        Member friend incorrectly inherits function
  608.                             linkage from linkage specifier.
  609.  ------------------------------------------------------------------------
  610.  PJ10569       C++FE        Invalid Error message EDC3458 produced.
  611.  ------------------------------------------------------------------------
  612.  PJ10570       C++FE        GPF calling virtual member function of a
  613.                             template class when the module uses #pragma
  614.                             data_seg.
  615.  ------------------------------------------------------------------------
  616.  PJ10571       C++FE        Invalid error for postfix operator ++ on a
  617.                             reference in a conditional expression.
  618.  ------------------------------------------------------------------------
  619.  PJ10572       C++FE        Invalid error message EDC3276 and GPF when
  620.                             compiling a conditional expression.
  621.  ------------------------------------------------------------------------
  622.  QUAL-IMP      C++FE        Runtime GPF accessing static data member
  623.                             at location 0.
  624.  ------------------------------------------------------------------------
  625.  QUAL-IMP      C++FE        /Ms causes a runtime GPF when exception
  626.                             handling is used.
  627.  ------------------------------------------------------------------------
  628.  PJ10462         CRT        Thunk Prologue incorrectly probes stack
  629.                             causing system traps. This may occur
  630.                             with any 32-16 calls not in thread one.
  631.  ------------------------------------------------------------------------
  632.  QUAL-IMP        CRT        Free not handling debug object. An debug
  633.                             memory object (as allocated by the debug
  634.                             memory routine) can cause system trap
  635.                             after it is passed to the regular free()
  636.                             function for freeing.
  637.  ------------------------------------------------------------------------
  638.  QUAL-IMP        CRT        Spawn/Exec family functions should ignore
  639.                             net error. If the net error is not ignored,
  640.                             the search on the PATH stops prematurely,
  641.                             which may cause spawns/exec functions not to
  642.                             find any program whose path appears
  643.                             after the net work path causing the error.
  644.  ------------------------------------------------------------------------
  645.  QUAL-IMP       UTIL        Compiler dialog did not parse a file when the
  646.                             file contains a '//' comment.  It ignored
  647.                             lines after the '//' character until a blank
  648.                             line is reached.
  649.  ------------------------------------------------------------------------
  650.  QUAL-IMP       UTIL        Dialog did not free up memory when saving
  651.                             or retrieving information to/from the project
  652.                             file extended attribute.
  653. =========================================================================
  654.                CTC0001 is informal Corrective Service
  655. The following fixes are provided in Compiler CS CTC0001 and later CS
  656. *************************************************************************
  657. FIX/APAR      COMPONENT     PROBLEM DESCRIPTION
  658.  ------------------------------------------------------------------------
  659.  PJ09575        DOC         Hitting Ctrl H in EPM for contextual help
  660.                             did not work for printf or scanf.  A change
  661.                             was made in the DDE4CLIB.NDX file..
  662.  ------------------------------------------------------------------------
  663.  QUAL-IMP       ICC         When /Fa compilation switch was used to
  664.                             create assembler file, and a template file
  665.                             was compiled, the compiler trapped.
  666.  ------------------------------------------------------------------------
  667.  QUAL-IMP       ICC         Added the description of /Tm option to ICC
  668.                             help.
  669.  ------------------------------------------------------------------------
  670.  PJ09573        FE          Fixed the compiler to disallow illegal
  671.                             initialization of two-dimensional array
  672.                             of char with character string without braces.
  673.  ------------------------------------------------------------------------
  674.  PJ09574        FE          Structure initialization failed with an
  675.                             extra set of braces.
  676.  ------------------------------------------------------------------------
  677.  QUAL-IMP       FE          Usage of _Export keyword caused the compiler
  678.                             to fail.
  679.  ------------------------------------------------------------------------
  680.  QUAL-IMP      UTIL         Beta project causes Workframe to trap.
  681.  ------------------------------------------------------------------------
  682.  QUAL-IMP      UTIL         Update English panels to fix a Japanese
  683.                             VGA screen.
  684.  ------------------------------------------------------------------------
  685.  QUAL-IMP      UTIL         Remove the minimize capability of the
  686.                             notebook dialog.
  687.  ------------------------------------------------------------------------
  688.  QUAL-IMP      UTIL         No keyboard focus when the notebook dialog
  689.                             first appears.
  690.  ------------------------------------------------------------------------
  691.  QUAL-IMP      UTIL         Incorrect focus when Alt key is pressed
  692.                             inside a dialog.
  693.  ------------------------------------------------------------------------
  694.  QUAL-IMP      UTIL         /Xc should not generate any command line
  695.                             include paths.
  696.  ------------------------------------------------------------------------
  697.  QUAL-IMP      C++FE        The /Ms option is changing the linkage of
  698.                             internally declared compiler functions.
  699.                             This can result in runtime traps when using
  700.                             memory management or C++ exception handling.
  701.  ------------------------------------------------------------------------
  702.  QUAL-IMP      C++FE        The linker fails when using /ND to rename
  703.                             a data segment.  The compiler is generating
  704.                             bad code for partially initialized
  705.                             structures.
  706.  ------------------------------------------------------------------------
  707.  QUAL-IMP      C++FE        Using the compiler options /La or /Lb causes
  708.                             the compiler to trap.
  709.  ------------------------------------------------------------------------
  710.  PJ09576       C++FE        Linking a program that contains templates
  711.                             causes an invalid error to be generated by
  712.                             lib.exe.  The error is "LIB0007: Error :
  713.                             Unable to open D:\00900000.6.OBJ"
  714.  ------------------------------------------------------------------------
  715.  PJ09577       C++FE        Large program with many template functions,
  716.                             (more than 1023), traps at runtime.
  717.  ------------------------------------------------------------------------
  718.  PJ09578       C++FE        When linking programs that contain templates
  719.                             and object files that were generated by TASM
  720.                             the message: "Unknown Record Type {ox..},
  721.                             offset {..} is generated.
  722.  ------------------------------------------------------------------------
  723.  PJ09579       C++FE        The compiler is incorrectly resolving to a
  724.                             function template instead of using a
  725.                             previously declared member function.
  726.  ------------------------------------------------------------------------
  727.  PJ09580       C++FE        Object destructors are not always run after
  728.                             a throw statement.
  729.  ------------------------------------------------------------------------
  730.  PJ09581       C++FE        Compiling code that uses _Far16 and _Pascal
  731.                             keywords causes an internal compiler error:
  732.                             "Exception #C0000005: 30751 occurred in
  733.                             file .., function .."
  734.  ------------------------------------------------------------------------
  735.  QUAL-IMP      C++RT        Incorrectly handling exceptions in multiple
  736.                             runtime environments.
  737.  ------------------------------------------------------------------------
  738.  PJ09568         BE         Compiling source files with the same names
  739.                             may result in conflicting BSS static areas.
  740.  ------------------------------------------------------------------------
  741.  PJ09570         BE         Optimization Problem: Incorrect code could be
  742.                             generated when the result of a comparison is
  743.                             subtracted from a variable.
  744.  ------------------------------------------------------------------------
  745.  PJ09571         BE         The debug info could become corrupted in very
  746.                             large files which results in only assembler
  747.                             view being available within IPMD.
  748.  ------------------------------------------------------------------------
  749.  PJ09572         BE         Optimization Problem: An internal problem
  750.                             during loop optimizations could cause a
  751.                             compile-time exception in the back-end.
  752.  ------------------------------------------------------------------------
  753.  PJ09569         BE         Optimization Problem: Incorrect code could be
  754.                             produced for loops ending with an
  755.                             if-then-else where the last statement of the
  756.                             else is a break.
  757.  ------------------------------------------------------------------------
  758.  QUAL-IMP        BE         Optimization Problem: An internal problem in
  759.                             store removal could cause incorrect code.
  760.  ------------------------------------------------------------------------
  761.  QUAL-IMP        BE         Optimization Problem: An internal problem
  762.                             may cause a compile-time exception in the
  763.                             back-end.
  764.  ------------------------------------------------------------------------
  765.  QUAL-IMP        BE         Incorrect code generation for _Far16 _Pascal
  766.                             functions that return floating-point types
  767.                             could cause a run-time exception.
  768.  ------------------------------------------------------------------------
  769.  QUAL-IMP        BE         Optimization Problem: An internal problem,
  770.                             when compiling with /Ti+, may cause incorrect
  771.                             code generation for breaks within loops.
  772.  ------------------------------------------------------------------------
  773.  QUAL-IMP        BE         Optimization Problem: The optimizer was
  774.                             incorrectly folding (0 / x) and (0 % x).
  775.  ------------------------------------------------------------------------
  776.  QUAL-IMP        BE         Casting a floating-point value to int and
  777.                             then comparing the result to another int that
  778.                             was previously cast from a floating-point
  779.                             value may produce incorrect results.
  780. =========================================================================
  781.